﻿namespace Kazkommertsbank.Framework
{
    public interface IKkbSettings
    {
        bool IsTestMode { get; set; }
        string PostUrl { get; set; }
        string TestModePostUrl { get; set; }

        /// <summary>
        ///   номер терминала магазина, он же MerchantID (дает банк)
        /// </summary>
        string MerchantID { get; set; }

        /// <summary>
        ///   ID инициализируемого магазина <br /> Необходимо в том случае если компания под одним регистрационным номером в платежной системе(MerchantID), осуществляет торговлю с двух и более торговых сайтов. <br /> Значение для этого поля выдается после регистрации магазина в системе авторизации
        /// </summary>
        string ShopID { get; set; }

        /// <summary>
        ///   В данном поле передается информация о языке интерфейса сервера авторизации(rus | eng, По умолчанию: rus)
        /// </summary>
        string Language { get; set; }

        //bool ShowCurr { get; set; }
        //bool ShowAmount { get; set; }

        /// <summary>
        ///   Относительный путь к pfx-файлу с ключами магазина (файл дает банк)
        /// </summary>
        string PathToCertificate { get; set; }

        /// <summary>
        ///   Пароль к pfx-файлу (дает банк)
        /// </summary>
        string CertificatePassword { get; set; }

        /// <summary>
        ///   Номер сертификата (дает банк)
        /// </summary>
        string CertificateID { get; set; }

        /// <summary>
        ///   Относительный путь к файлу с публичным ключом банка (файл дает банк)
        /// </summary>
        string PathToKazkommertsbankPublicKey { get; set; }

        /// <summary>
        ///   Линк для возврата покупателя в магазин (на сайт) после успешного проведения оплаты
        /// </summary>
        string BackLink { get; set; }

        /// <summary>
        ///   Линк для возврата покупателя в магазин (на сайт) после оплаты в случае неудачной авторизации
        /// </summary>
        string FailureBackLink { get; set; }

        /// <summary>
        ///   Линк для отправки результата авторизации в магазин. Oбязательно
        /// </summary>
        string PostCallbackLink { get; set; }

        /// <summary>
        ///   Линк для отправки неудачного результата авторизации либо информации об ошибке в магазин. Необязательно
        /// </summary>
        string FailurePostCallbackLink { get; set; }

        string OrderStatusCheckUrl { get; set; }

        bool IsValid();
    }
}